Align Two Mesh with same origin point
I was able to fix it by setting the origin to the centre of bounding box then copying location from m1 to m2 then applying location as shown below.

bpy.ops.object.select_all(action='DESELECT')
m2.select = True
scene.objects.active = m2
m1.select = True
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='BOUNDS')
m2.location = m1.location
bpy.ops.object.transform_apply(location=True, rotation=False, scale=False)