SOL evaluating D365 CRM picklists to 0 when NULL

I have a map taking data from one D365 CRM entity to another, using a Native Query with Fetch XML. I have in the source some custom optionset values. If they are set to an empty value in CRM, SOL seems to insist on bringing them through as a 0 instead of a NULL - anyone got any idea why this would be? So instead of being able to check IFNULLUSE, I'm having to check to see if they evaluate to 0. Fortunately for these, there is no valid 0 value (they're in the 614,020,000 range), but could be a problem if it evaluated an optionset that could have a 0 value to 0 if it was empty?