Optimally, HEALTH <= 0 (and any condition filtering the For Each) should go above the For Each.
If you don't destroy the enemy right away, your only resort would be to use a boolean or another state variable (using AI_STATE <> 11 could be ok too if an AI_STATE doesn't change once dead). "Trigger once" in that context doesn't make much sense, in fact, using a "Trigger once" in a loop is one sure way to get unwanted behavior. As soon as it loops more than once, "Trigger once" get mixed up and make each iteration a "new trigger", thus explaining your problem.
Also, the "Trigger once" in the collision event is redundant, and you might as well remove it altogether.