Here A4A declines to fill the "scp" param if the tag's JSON lacks the "targeting" param, without looking at the "categoryExclusions" param. However, GPT documentation here suggests that "categoryExclusions" can indeed be alone in the JSON.
The fix is to fill "scp" with "categoryExclusions" if it's present, even in "targeting" is absent. This isn't a large issue since users are supposed to set category exclusions in the DFP UI as explained here.