goodは一語ではありません。[(which are) good for free desserts at ~]「...で~に使える」という意味のまとまりになっていますから、後ろに置きます。例を挙げましょう。
・I avoid food [high in sugar].
「私は糖分を多く含んでいる食べ物を避けます」
このように、high in sugaraは、離すことはできません。✖high food「?高い食べ物」になってしまいます。お尋ねの[(which are) good for free desserts at ~]の場合も、goodとfor以下の結びつきが強いので、離すことはできません。