Ваш запрос не работает, потому что вы ищете строки, которые удовлетворяют обоим условиям одновременно, что не может произойти. Вам нужно просмотреть строки одной и той же группы.
Вместо этого вы можете фильтровать строки, удовлетворяющие любому условию, а затем убедиться, что у вас есть две строки в группе:
select hotel_id
from mytable
where isHas = 1 and facilities_id in (1, 2) -- one or the other
group by hotel_id
having count(*) = 2 -- two rows in the group
Если (hotel_id, facilities_id )
кортежи не уникальны, вам нужно having count(distinct facilities_id) = 2
.