Originally Posted by
Kanegasi
No, the pet would not be the destination of the spell. Only conditionals with the @ symbol designate a destination, such as @target, @player, @focus, and so on. [pet] is true or false depending on whether your pet is "active", as in it is either out and alive or dead with the corpse nearby.
Correct, [exists] is redundant here. The default destination of a macro is your target, whether or not it's there. Therefore, [exists] by itself does nothing if used with a hostile-only spell.
However, [exists] will prevent a line from casting if it could also be cast on yourself. For example, if you have /cast [exists] Holy Light, it will only attempt to cast on your target and will no longer cast on you. There are also some hostile spells that will automatically target the nearest enemy when cast, something Blizzard has baked into these spells to replicate the popular "/startattack" macros of the past. If you don't like this behavior, [exists] can stop that. I do not know if Barbed Shot is one of these spells.
Going further, while [exists] has very niche uses, the conditionals [help], [harm], [dead], [party], and [raid] imply the same thing. For example, if you see a macro that has [help,exists] in it, the exists is just a waste of space.