If not
is used in a backward chaining goal, it succeeds if the condition contained within it fails. In this usage, only one condition is allowed.
If not
is used in a forward chaining pre-condition, it succeeds if any of the condition contained within it fail. In this usage, the conditions may only contain expressions normally allowed in forward chaining pre-conditions (object base references and lisp tests).
KnowledgeWorks and Prolog User Guide (Macintosh version) - 26 Feb 2015