First, it is unwise AT THE TABLE/QUERY level to talk about "extra fields" because that is not what Access does. You either populate or don't populate the field, but in order to EVER populate it at TABLE/QUERY level, it must ALWAYS exist. There is nothing dynamic about the existence of a field.
The same is not true for forms and reports. It is possible within a form to have some VBA code behind the Form_Current event (which fires when a new record becomes current or when the old record is updated in place). Put the extra control on the form that corresponds to your extra field. Always display it. But... in that form's Form_Current event code, you could test what was in your SEX control (NOT FIELD ... CONTROL) and decide whether to make this extra CONTROL visible or not.
If you are letting people see the table or query, then you are already not doing yourself a favor. You should always use a form because you can put complex validation code in the BEFORE_UPDATE event of the form. That way, if there is something wrong, you can force the update to abort and put up a message box or something.