Well, actually your first version should work just fine - the problem might be the Activated By! I -think- empty objects should be under the Civilian side, so make sure it's activated by that. Otherwise, you could try placing a trigger, condition true, on activation: hint str (thisList)
Then it should tell you what's 'inside' it: if the empty objects don't show up under any "activated by" (Anybody, Civilian...don't know what else you could try) then that won't cut it. bardosy's solution seems a good alternative one, but it's easier to do that one in just one command:
{(_x distance area1obj) > 100} count [BA1, BA2, BA3...] < 1
Also I'm not sure if it'll work if the objects are deleted in the script (I don't think they are...but you never know). Finally, have you considered the possibility that the objects, as part of the script, are for instance attached 1000000 meters on top of the object transporting them or something like that? Triggers don't care for vertical distance, which would mean they'd still be inside the trigger area (in which case you'd need an alternative solution again).
But first: try changing the "activated by" to Civilian
Wolfrug out.