That's pretty good Kyteland. Here's the solution I came up with spoiler warning
Divide them up into 3 groups of 4. Call them Group A, B, and C.
Weigh Group A vs Group B.
Case 1: Group A = Group B.
In this case, you know the deviant ball is in group C. Weigh c1, c2 and c3 against a1, a2, and a3.
case 1.1: They are the same.
You know the deviant ball is c4. Weigh it against a1 to find out if it is light or heavy.
case 1.2: c1, c2 and c3 are heavier.
Weigh c1 vs c2. If they are the same, you know the ball is c3 and it is heavier. If they differ, you know that the heavier ball is the one.
case 1.3: c1, c2, and c3 are lighter.
Same as above. Weigh c1 vs c2. If they are the same, you know c3 is the light ball. If they differ, the ball that is lighter is the one you're after.
Case 2: A is heavier than B.
Take a1, a2, and b1, and weigh them against a3, b2, and c1.
case 2.1: a1, a2, and b1 are heavier.
Since you know the heavy ball must be in A or the light ball is in B, you can tell that the ball you want is either a1, a2, or b2. Weigh a1 vs a2.
case 2.1.1: They differ.
You know that the heavier ball is your ball.
case 2.1.2: They are the same.
You know that b2 is your ball and it is lighter.
Case 2.2: a1, a2, and b1 are lighter.
You know either b1 is your ball and it is lighter, or a3 is your ball and it is heavier. Weigh a3 vs c1.
case 2.2.1: a3 is heavier than c1.
You know a3 is your ball and it is heavy.
case 2.2.2: a3 is the same as c1.
You know b1 is your ball and it is lighter.
Case 2.3: a1, a2, and b1 are the same weight as a3, b2, and c1.
Basically, at this point, you have a4, b3, and b4 left. From your first measurement, you also know that a4 cannot be the lighter ball, nor can b3 nor b4 be the heavier ball. Take a4 and b3, and weigh them against c1 and c2.
case 2.3.1: a4 and b3 are heavier.
Since you know that b3 cannot be the heavier ball, a4 must be the ball you want, and it is heavy.
case 2.3.2: a4 and b3 are lighter.
Since you know that a4 cannot be the lighter ball, b3 must be the ball you want and it is lighter.
case 2.3.3: a4 and b3 are the same as c1 and c2.
You know that b4 is the deviant ball, and from your very first measurement, you know that it must be light.
Case 3: B is heavier than A:
Just repeat case 2 over, but switch all the balls labelled a for b.
DONE