Well, you're stacking an exception aggregation (a measure that is made up for every record on the fly) and a SUM aggregation on top of each other and work with filters that yield an empty result set.
If you build the same semantic in SQL you wouldn't even get any result row and not a NULL.
For your construct you can simply use
SELECT IFNULL ( SUM (NumberOfCRMActivities), 0) as SUM_NumberOfCRMActivities ...
This will provide you with a zero (0) in case of an empty result set.