Quieres algo como esto:
select room_id
from availability a
where avail_date between $start and $end
group by room_id
having count(*) = datediff($end, $start) + 1;
El having
la cláusula está contando la cantidad de filas durante ese período para ver si coincide con la cantidad de días que necesita. Esta es una lógica "inclusiva", por lo que si $start = $end
, entonces asume que necesita la habitación en esa fecha.