pointed out by @ranma42
WHERE NOT (CASE
WHEN instr("c"."CompanyName", "c"."ContactName") > 0 THEN 1
ELSE 0
END)
can be simplified to:
WHERE CASE
WHEN instr("c"."CompanyName", "c"."ContactName") > 0 THEN 0
ELSE 1
END
can be safely done for constants for sure, need to think about/test more complex cases, e.g. if THEN itself is an expression, like a comparison.