Adding to solution 1: Taken that you're actually looking for available rooms, not only bookings the query could look something like
SELECT ...
FROM Rooms r
WHERE r.Room_Id NOT IN
(SELECT br.room_id
FROM bookings as b
INNER JOIN booked_rooms br on b.id = br.booking_id
WHERE b.property_id = 2
AND ( (b.check_in >= '2022-01-28' AND b.check_in < '2022-01-30')
OR (b.check_out > '2022-01-28' AND b.check_out < '2022-01-30')
OR (b.check_in < '2022-01-28' AND b.check_out > '2022-01-30'))
However, this probably doesn't correctly take into account the duration of the stay if it only checks if a room is available during specified dates. So the actual query should check that there is enough continuous availability for the room between a date range which probably can be larger than the desired length of the stay.