MySQL join to show room booking availability on different days per slot
Finally got a hook of it by using MAX (CASE WHEN.. END) instead of IF

SELECT tbl_days.id,tbl_days.date_day,
       MAX(CASE WHEN tbl_bookings.slot_id =1 THEN 'Booked' ELSE 'Available' END) '07:00 to 08:00',  
       MAX(CASE WHEN tbl_bookings.slot_id =2 THEN 'Booked' ELSE 'Available' END) '08:00 to 09:00',  
       MAX(CASE WHEN tbl_bookings.slot_id =3 THEN 'Booked' ELSE 'Available' END) '09:00 to 10:00',  
       MAX(CASE WHEN tbl_bookings.slot_id =4 THEN 'Booked' ELSE 'Available' END) '10:00 to 11:00'  
FROM tbl_days
LEFT JOIN tbl_bookings 
     ON tbl_bookings.day_date = tbl_days.id
LEFT JOIN tbl_slots 
     ON tbl_slots.id = tbl_bookings.slot_id
LEFT JOIN tbl_rooms 
     ON tbl_rooms.id = tbl_bookings.room_id
GROUP BY tbl_days.id;