Is using the result of cmp() as an index "too cryptic"?
The documentation to cmp says nothing about the return value except it being negative, zero or positive, so you rely on implementation-dependent behaviour.  This exact function will also not work in Python 3, as there is no cmp function anymore.

I'd say use the second option or shorten it a bit:

def winning_side(home_goals, away_goals):
    if home_goals == away_goals:
        return DRAW

    return HOME if home_goals &gt; away_goals else AWAY