Since API version 30.0 a change set or ant deployment will fail if a field that is required in the field definition is included in a profile or permission set that is being deployed.
If you create a new custom field and check
'Required', Field Level Security automatically becomes 'Visible' for all
profiles. Similarly, if you edit the definition of a custom field
which is not visible to all profiles and check 'Required' then it
automatically becomes visible to all profiles. Therefore there is no
need to reference it in a permission set. Try it!