can't set the location of the object by program?
When directly manipulating transform values fails (it shouldn't, but it does sometimes), I often just try to use the transform operators insated, and it often fixes the problem.

 def choose_car_position_byname(name, pos):    
    o = bpy.data.objects[name]
    o.hide_render = False;    
    print("location     ", o.location )

    bpy.ops.object.select_all( action = 'DESELECT' )
    o.select = True
    bpy.context.scene.objects.active = o

    bpy.ops.transform.translate( value = ( pos, 1, 0 ) )

    print("location     ", o.location ) 

    return o

 car1 = choose_car_position_byname('AudiA2',1)
 car2 = choose_car_position_byname('JeepCherokee',0)


By the way, if this still fails, check if you have keyframes on the car objects' locations. If you do, that could definitely explain why they aren't moving (the keyframes will keep them in place).

EDITED: based on blend file, my suspicion has indeed been confirmed that you have keyframes on your car models. You need to delete these keyframes to enable control over the objects' locations via script. Here's how to do this (mouse cursor is a bit off due to weird issues in recording on my laptop's screen, you need to select a car object, then right click on any of the location boxes in the properties panel):