When one uses FILTER expressions and one combines them, RDF or FILTER expression within SPARQL on need to take into consideration that SPARQL is not necessary based on a Binary Logic, but in fact it is based on Ternary Logic, i.e. 3-valued Logic because each part that is connected via or or and can be either True, False or there might be an Error.
Error is treated as a special third return Value that has to be taken into consideration when it is combined with the or or and Operators.
In the end one comes up with a Value Table. If for instance True is combined with Error via and it will be of course an Error and when connected via and or it will be True. On the other hand when one connect False with an Error in the case of an or it will be an Error and in the case of an and it will be False.