You have to understand what happens when you create triggers.
When you load the map, the game will run a function called the "main".
All your trigger events are placed inside that main function.
So in your main function, you create a new trigger and add the event to it:
<player>'s <variable> becomes <operator> <value>. (You don't have to understand it completely already

)
Your event: "Player - (Owner of Blood Mage 0243 <gen>)'s Current gold becomes Greater than or equal to 1000.00"
Is the visualisation of the implementation of that weird stuff I just wrote.
First of all, who is the player that this event will work for?
<player> = (Owner of Blood Mage 0243 <gen>)
So the <player> will be the owner of that Blood Mage unit at the moment that the map loads.
That player (probably neutral passive) will now be linked to this event.
<variable> will be the thing that we want to track (the gold)
<operator> will be the operator that we use on this event (Greater than or equal to)
<value> will be the value that the gold has to be greater than or equal to.
However these are irrelevant to your problem.
What happens is that now, we have the trigger all set up and ready to use.
When Neutral Passive's gold will be greater than or equal to 1000, we run this trigger.
You can see that the Blood Mage is of no concern of the trigger itself.
The trigger doesn't care if the Blood Mage exists.
The trigger doesn't care who the owner of the Blood Mage is.
The trigger only cares about Neutral Passive's gold.
So to fix your problem, there are two solutions:
1, we create a new event when the blood mage changes owner (the original event will then be useless so you can remove it).
This means that instead of creating the event when the map loads, we create the event when you select the Blood Mage.
There seems to be a GUI action that adds an event to a trigger during runtime.
2, we create a generic event (much more recommended and better for personal triggering/scripting/coding experience).
In this case, we create an event that will work for every single player, but adds a condition that you have to be the owner of the Blood Mage.
Because you use a preplaced unit, you can use that one, however I ussually use a global array variable to store the hero of each player in.
Then you can check if the unit type of the player's hero is equal to Blood Mage.
Then this trigger would work for all players that would have the Blood Mage as their hero.
In any case, it would work properly.
The first one is slightly easier to create but the second one is much more recommended.
Anyway, it is your choice.