mira segun tu consulta lo que dices que te devuelve como resultado esta correcto, ya que en la parte del where estas usando OR eso quiere decir que si cumple cualquiera (una, dos o mas) de tus condiciones se mostrara, es decir si quieres que se cumplan todas las condiciones deberias usar AND o ver mas precisamente donde usar OR o AND, revisa bien la idea de lo que quieres recuperar en esa consulta
Código PHP:
SELECT * FROM Productos WHERE (fin !='cod') OR (fin ='')
OR (fin IS NULL) OR (fin !='Yes')
cya