IF(($q1) > 0, 1, 0)
Esta é a parte que retorna o erro.
Além disso, do jeito que você tem,
$q1
está sendo avaliado duas vezes, o que provavelmente não é o que você deseja. Se eu entendi corretamente o que você está tentando fazer, você deve poder deixar essa parte de fora. Se
$q1
não retorna nenhuma linha, então o IN
expressão simplesmente não corresponderá a nada. Deve notar também que
IN
com subconsultas é bastante ineficiente no MySQL; correria muito mais rápido com uma junção:SELECT `c_title` FROM `c_content` JOIN ($q1) `a` ON `c_content`.`c_id`=`a`.`bd_h_id`