The "trigger once" condition prevents an event from activating multiple times once its other conditions are met.
For instance: If you have an event with the conditions "ObjectA is overlapping ObjectB" and "Trigger Once", it would trigger once when starts ObjectA overlapping with ObjectB, and then wait for them to stop overlapping to check again.
I'm afraid there's no event to have something happen once and then never again in the game, but it should be simple to achieve by various other means.
In your case, you could simply move the "Add 1 to mainbar_speed" to the events that set the object's level and charge the player money. This way, it'll add to the global variable at the moment you upgrade, and only then.