How is this Area deleted? Normally it shouldn't be deleted unless all references (including reference in the array) are gone.
So if an Object is deleted with queuefree() the object should give true for isqueuedfordeletion() until the array entry is overwritten or deleted.
Anyway, you could try testing with
enemies[i] is null because null is supposed to be a special type in GDScript.
Or: Delete the array entry in enemies at the moment you're deleting the Area. (All indices will change)
Or: Use a hash instead of an array. That way you can directly remove the hash entry on deleting the area. You would have to keep a counter though.