Tu forma de explicar es complicada
Decís que no importa el estado (en serio no pongas una O antes de de una palabra que inicia con O) ya sea PRESENTADO
U OBSERVADO, pues eso lo debería traer sin necesidad de otra comparación, solo con el <codigo_producto='123'>
Ahora que la variable $q no traiga nada y por ende no te devuelva resultado es algo completamente diferente, sera ese tu problema ?? esa variable se establece despues de un POST o envio de algun form ?? ya hiciste echo a esa variable para ver que en verdad tenga datos y que no se meta vacía al momento de hacer el query