IF(($q1) > 0, 1, 0)
Dit is het deel dat de fout retourneert.
Ook, zoals je het hebt, $q1 wordt twee keer geëvalueerd, wat waarschijnlijk niet is wat je wilt.
Als ik goed begrijp wat je probeert te doen, dan zou je dit deel gewoon moeten kunnen weglaten. Als $q1 geeft geen rijen terug, dan de IN uitdrukking komt gewoon met niets overeen.
Merk ook op dat IN met subquery's is nogal inefficiënt in MySQL; zou veel sneller werken met een join:
SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`