Timmy,
Since the second query is giving you some results, I assume your data is of the form
:a1 a :Patient ;
:has_gender :MALE .
Therefore, the query binds ?gender to :MALE.
Your first query, however, assumes that the underlying data is of the form
:m a :MALE .
:a1 a :Patient ;
That is, the query is trying to bind ?gender to something that is of type :MALE, which explains the empty results.
By the way, given the usual semantics of gender, I would suggest to do something like
:a1 a :Patient, :Male .
and use the query