Thanks for the suggestion. I've narrowed it down to this part returning null:

$eval($!get $+ $dosscat1(%sel) $+ ($1 , $2), 2)

This works correctly in another portion of the code when using the listreduced alias like this:

$eval($!listreduced $+ $dosscat1(%sel) $+ ($1), 2)

Am I missing something obvious with the $eval command?