The code below will create, from a shapefile, a layer file called test_A.lyr which has a Definition Query of "testField" = 'A' saved into it.
lyr = arcpy.mapping.Layer("test_lyr")
lyr.name = "test"
lyr.definitionQuery = '"testField" = ' + "'A'"
If required, you could also add this layer file,or the Layer object (lyr) from prior to it being saved as a layer file, into your map via arcpy.mapping.AddLayer.
To see whether a where_clause on MakeFeatureLayer gets passed through as a Definition Query, which I think is undocumented behaviour, I performed a second test below to verify the Answer of @John, and he is quite correct.
arcpy.MakeFeatureLayer_management(r"C:\temp\testLines.shp","test_lyr2",'"testField" = ' + "'A'")
lyr2 = arcpy.mapping.Layer("test_lyr2")
lyr2.name = "test2"