is not returning NULL (use NULL() function for that), but an empty value (which is different).
But you problem is different: You can't just hide an expression for some dimensional values, but show it for others in a Qlik pivot table chart. You can only show / hide / supress expression column for the entire chart (and that's not what you want).
But you might be able to work around, using another dimension that basically is replacing your three expressions, and a single expression that tests the 'expression surrogate' dimension value.
So this dimension would link three values 'Purchased', 'Remaining', 'Quantity' to your Calls-BusHelp dimension value, and only 'Purchased' and 'Remaining' to the other two.
To make the linking easier, I would suggest to create another field in your data model replacing the current calculated dimension:
If(WildMatch(Code, '*CALLBUS*'), Dual('Calls-BusHelp',3),
If(WildMatch(Code, '*CALLHR*'),DUAL( 'Calls-HR',2),
If(WildMatch(,Code '*CALLS*'), DUAL('Calls',1),' ' ))) AS ChartDim,
Then you could create a link table for your expression surrogate dimension:
LOAD * INLINE [
Now create your pivot table chart replacing your calculated dimension with ChartDim and adding dimension ChartExpressionDim.
Then remove all three expressions and use a single expression: