I only have one solution for it too, although i'm pretty sure there's only one solution.
I worked it out during a particularly boring Maths lecture
1. Divide the balls into 3 sets of 4
2. Weigh any two sets against each other.
a) The two sets are of the same weight, and so the faulty ball is in the third set.
b) The two sets have different weights.
It is pretty obvious what you should do, so I won't insult anyone's intelligence with any detailed description. Weigh two balls from the third set against 2 normal balls. Then narrow it down to one ball.
Scenario B (which is more interesting
3. Label one set Heavy and one set Light... Give the balls labels like H1, H2, H3 and H4 for the heavy set and L1, L2, L3, L4 for the light set. The H label indicates that if the ball is faulty, it would be because it is heavier, and the L for the ball being lighter.
4. Weigh H1, H2, L1 against H3, H4, L2
5. If H1, H2, L1 is heavier, then, the faulty ball is H1, or H2 or L2.
If the 3 weigh lighter, then the faulty ball is H3, H4 or L1
If they are the same weight, the faulty ball is L3, or L4, in which case it should be obvious how to find out the faulty ball.
6. I'll just describe the scenario for H1, H2, and L1 being heavier... you can infer for the other case. Since the faulty ball is H1, H2, or L2, weigh H1 and L2 against 2 normal balls. If H1 and L2 is heavier, then H1 is the faulty ball. If they are lighter, L2 is the faulty ball. If they are the same weight, H2 is the faulty ball.