Both are correct, I've added your suggestion as an alternative answer. The North Wales Welsh for adults course uses the form above, your suggestion is the standard form used in written Welsh.
The standard written form is 'mae X gen i' and 'oes x gen i' although in a formal letter this might be 'mae X gennyf' and 'oes X gennyf'. The spoken forms are 'mae/oes X gyda fi' and 'mae/oes gen i X'(with soft muatation)