I prefer using the following expressions, which contain the modulus operator, for rule-based styling to determine if a value is even or odd:
Even:
"id" % 2 = 0
Odd
"id" % 2 != 0
If you want to create a categorised style, you could use a little bit of Python by using the following in the Python Console:
from PyQt4.QtGui import QColor
layer = iface.activeLayer()
idx = layer.fieldNameIndex('id')
style_dict = {}
for feat in layer.getFeatures():
if feat[idx] % 2 == 0:
style_dict[(feat[idx])] = ('#ff0000', str(feat[idx]))
else:
style_dict[(feat[idx])] = ('#46add4', str(feat[idx]))
categories = []
for name, (color, label) in style_dict.items():
symbol = QgsSymbolV2.defaultSymbol(layer.geometryType())
symbol.setColor(QColor(color))
category = QgsRendererCategoryV2(name, symbol, label)
categories.append(category)
field = 'id'
renderer = QgsCategorizedSymbolRendererV2(field, categories)
layer.setRendererV2(renderer)
layer.triggerRepaint()
Example:

In my opinion, depending on how many values you have, a rule-based style as you have used may not only be easier to create but also more easy on the eyes ;)