La mas de las veces, reducir una consulta para que se entienda "mejor", ahce que se entiend directamente MAL y que lo que se quiere proponer resulte inaplicable.
Acostúmbrate a poner lo que realmente es, no simulaciones porque el SQL no es un lenguaje para hacer eso. Es un lenguaje de búsquedas precisas y lo
parecido generalmente no resulta ser
lo mismo.
Reflexiones aparte, el modelo que te proponía era sobre la base de dos campos, donde un IF() puede resolver la dicotomía. Pero tu caso no se asemeja ni por las tapas.
IN() es en esencia un OR, lo que implica que dará por buenos todos aquellos que al menos cumplan con uno de los parámetros. Y eso no es lo que tu quieres.
Hay varias formas de encararlo, una de ellas es con LEFT JOIN y un NOT IN:
Código MySQL:
Ver original cliente.id_cliente
call_formulario F
call_cliente C
ON F.id_cliente
= C.id_cliente
WHERE id_subtipo
NOT IN ('6','7','8','9','0')) CC
ON CC.id_cliente
= F.id_cliente
DATE(F.entrevista_fecha
) >= '2009-01-01'