It is a Construct thing yes with picking. When you pick the first sprite by var=1 it narrows the pool of sprites to pick from to that one only, so it won't find the other sprite in that same event.
There is a way to do it in the same event but it can sound a little convoluted, after picking sprite.var=1 has 0 health, in the next sub event you can use 'pick all sprites' again to open up the pool of sprites to all, then in the next sub event you can pick sprite.var=2 has 0 health as well so then when you hit this end condition I think you will have what you wanted.
Also an important thing, I don't think it will work anyway with system conditions for picking instances. Use the actual sprite object conditions and not system.