Użyj
HAVING sum(ea.gender = 'female') > 0
AND sum(ea.gender = 'male') > 0
lub
HAVING count(distinct ea.gender) = 2
Przy okazji, powinieneś użyć podzapytania, aby uzyskać wszystkie dane podczas grupowania.
SELECT *
FROM events
where id in
(
SELECT events.id
FROM events
LEFT JOIN event_attendances ON (events.id = event_attendances.event_id)
GROUP BY events.id
HAVING count(distinct event_attendances.gender) = 2
)