Answer
Report Rule condition expressions need actual values on both sides, so a literal blank/NULL comparison doesn't evaluate the way you'd expect. Wrap the check in a small SQL validation using NVL instead: set Expression 1 to [&SELECT nvl('[#Email]', 'true') FROM dual], the Operator to =, and Expression 2 to true — this correctly evaluates to true only when the variable is actually null/blank, sidestepping the direct NULL-comparison limitation entirely.