the issue is your only checking the velocity once at the start of play. thats like saying ok the level just opened whats the player velocity, doesnt make much sense. what you need to a loop that checks the velocity at a regular interval until the condition becomes true. for this you could use a timer or just use a delay.
though for a racing game i would go with a method like the second method i mentioned previously. this would allow all cars to begin movement at the same time, but would not restrict the opponents from moving until the player moves so it would be more realistic. think of every racing game ever made, when the race starts everyone can move, the player can choose to do nothing but the opponents will start racing.