There is no inheritance to macro conditions. The comma-separated list inside the brackets is a logical and, meaning everything has to be true to apply. The groups enclosed in brackets are then considered as a logical or, meaning only one of the conditions need to be true for the spell to cast. The target parameter from the first matching logical and is used for the associated spell.
I'm guessing this is the macro you're trying to make:
Code:
/cast [@focus,group,harm,nodead][@mouseover,group,harm,nodead][] Counter Shot
Notes: For a spell that requires an enemy, it's better off to use
harm instead of
exists. Also,
harm implies
exists, you don't need both defined.