The direction bit is set to 0 for uplink direction (from mobile to the network) and set to 1 for downlink direction (from network to the mobile) according to Annex B of TS 33.401. As you stated '0' is used for encryption and decryption in uplink and '1' used for encryption and decryption in downlink.
Taking the example of AES-CTR mode for encryption/decryption (128-EEA2, code name given to this scheme), the counter blocks (T1, T2,..) used for the 128 bit data blocks would be (according to annex B.1.3):
UPLINK (Mobile to network)
T1 = COUNT[0]..COUNT[31] | BEARER[0]..BEARER[4] | **0** | 0..0 (26 zeros)| 0..0 (64 zeros)
Tk+1 = Tk++ mod(2^64) // 64 LSBits are incremented for each subsequent block
DOWNLINK (Mobile to network)
T1 = COUNT[0]..COUNT[31] | BEARER[0]..BEARER[4] | **1** | 0..0 (26 zeros)| 0..0 (64 zeros)
Tk = Tk++ mod(2^64)
In my understanding, the direction bit leads to generation of different random blocks (which is XORed with data) in uplink and downlink even when the NAS counter and bearer ID is the same for both direction. One would not want the same random block to be used in both direction. Thus the use of direction bit leads to different nonce in the uplink direction and downlink direction for AES-CTR.