But you haven't describe what exactly problem do you have?
First one is spawning.
Spawning an object you can do by System -> Create object or by some sprite object -> spawn object.
I need to spawn a car at random 1-3 seconds...
You can use "Every x second" or any other loop with "wait" function, but there is a special way you have to build a delay between iterations. You can learn it here: https://www.scirra.com/tutorials/723/using-wait-in-loops.
Regarding random function, the most precise is the following format: "floor(random(b-a+1)) + a" which returns an integer number from "a" to "b" (including them).
and also spawn different types of cars (as I have different coloured cars and I don't want them to be the same).
If the only thing which differs is the color then I encourage to use one sprite and put various cars as separate frames.
Second thing is stopping. once the first car is stopped, the car behind goes ontop. I know I could put collide but I want there to be a gap inbetween the two.
Well this really depends on how exactly your game works. You can for instance check the distance between car1 and car2 by X and Y position.