The quotes matter
The reason the quotes matter is arcpy.env.overwriteOutput is a boolean value, not text, no matter how you set it.
>>> arcpy.env.overwriteOutput = 'True'
>>> arcpy.env.overwriteOutput
True
>>> arcpy.env.overwriteOutput = 1
>>> arcpy.env.overwriteOutput
True
Fortunately for you, it seems, Esri has set things up so if you set it this property to 'False' (string) it evaluates to False. (Normally in Python, any non-null string evalulates to boolean True.)>>> arcpy.env.overwriteOutput = 'False'
>>> arcpy.env.overwriteOutput
False
>>> bool('False')
True
Also since it is boolean type your original test can be written more simply:if arcpy.env.overwriteOutput:
print "It is true!"
else:
print "It is false!"