This is not correct. You may even have to use parentheses unless the negated condition is a conjunction or disjunction. The omission of the parentheses is tolerated when the argument is a single Pattern.
-W
Try this:
rule "Flag missing Foos with values"
when not Foo(stringProp=="blah", intProp==5) then System.err.println("A proper foo does not exist"); end