In the first one, it checks the spacekey() and ONLY THEN checks the timer result, while in the second one, it ONLY checks the spacekey() IF the timer has passed 1000. The second one is better.
In the second one, the timer MUST pass 1000 before it will ever look at the key and do the Gosub.
And, as said, the brackets are missing which may have led to the problem anyway.
How about this?
t = timer() + 1000
repeat : Until t<= timer()
repeat : Until SPACEKEY() = 1
GOSUB _event
If all the "1"s are in the right place, it'll work like a charm.