The reason for the different treatment is in the coercion model, which is used to figure out how to compare them:
sage: cm = get_coercion_model()
sage: _a, _b = cm.canonical_coercion(Set([1]), 0)
sage: _a, _b = cm.canonical_coercion(Set([1]), 1)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-18-a41b3a79237c> in <module>()
----> 1 _a, _b = cm.canonical_coercion(Set([Integer(1)]), Integer(1))
/home/vbraun/opt/sage-5.9.beta5/local/lib/python2.7/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.canonical_coercion (sage/structure/coerce.c:9707)()
/home/vbraun/opt/sage-5.9.beta5/local/lib/python2.7/site-packages/sage/structure/coerce.so in sage.structure.coerce.CoercionModel_cache_maps.canonical_coercion (sage/structure/coerce.c:9603)()
TypeError: no common canonical parent for objects with parents: '<class 'sage.sets.set.Set_object_enumerated_with_category'>' and 'Integer Ring'