I know you've solved your situation, but, just in case you need to change it back for some reason:
If text variable, 'Body' is NOT set (null), and you don't have the, 'Evaluate Not Set as Blank' option selected, neither of these will return true:
Begin Text Compare : [Body] Does Not Equal ''
Else If Text Compare : [Body] Equals ''
Because Body is null, and null is a state and is not comparable to literal strings.
You'll want to turn on 'Evaluate Not Set as Blank' or change the 'else if' line to just an, 'Else' statement (I *think* that would cover it)
-OR- Your condition could look like this (to be more clear):
If Body Is Set AND Body does not equal ''
do stuff
else
do other stuff
end if
Again, you can do it that way if you can't or don't want to turn on, 'Evaluate Not Set as Blank'.
Also, the literal value of 'Not Set' is only rendered if you are using a token. It could have easily just said, 'NULL', but I wanted to make it a little bit friendlier for the non-programmer-y folks.
Hope that helps!