Jazz is right about the missing "a." Your original sentence is correct, other than that. You don't need to switch "gift" and "present." I think it sounds better the way you wrote it first: "I prefer a gift rather than money as a birthday present."
It's true that a "gift" is a more general term, and can refer to non-material things in some contexts, but in this context, it's obvious that you mean a material gift. And the phrase "birthday present" sounds more natural than "birthday gift," so I think the sentence is a bit clearer if you use this term.