Nintex noob here. Just spent a bit of time figuring this out but I am curious as to why one formula works and one does not:
This doesn't work (it always comes back false but should be true if stage is anything but null or 1):
That's a good question, it seems like it should do as you expect. I'll try to run it in a workflow to check, but here is my expectation to match yours.
Stage = Null THEN FALSE(TRUE(TRUE,FALSE))
Stage = 1 THEN FALSE(TRUE(FALSE,TRUE))
Stage = 2 THEN TRUE(FALSE(FALSE,FALSE))
And on another note, you could run it as a short circuit using the following function that may be easier to manage.
fn-If(fn-IsNullOrEmpty(Stage), false, fn-If(fn-Equals(Stage,'1'), false, true))