Easy version: If a conveyor square is occupied by a car, then someplace up stream will not allow cars to pass.
This would be useful in places where a down stream process takes more time than the up stream process. The gate would prevent the upstream process from overloading the down stream process with cars
If process A takes 2 minutes and process B takes 2 minutes 30, the conveyor between the two will be full of cars in partial production (I am ignoring multiple production stations to balance production time imbalances). If you have a sensor just upstream of process B and a gate just down stream of A: IF there is a car waiting to enter process B, then the car in process A is not released until the car waiting to enter B moves forward. It keeps the conveyors free of partially produced cars (and all the money that is tied up in partially produced cars).
When the timing is done right, the gates reduce the amount of spent money with cars just sitting on the conveyors waiting for the cars in front of them to be worked on.