So you made me curious, and as it turns out, it looks like 'if not x:' is actually faster than 'if x is None:' even when x is an empty list.

Using Python 2.7.3 on Linux:
>>> timeit.timeit('if a is None: pass', setup='a=None', number=100000000)
2.322221040725708
>>> timeit.timeit('if not a: pass', setup='a=None', number=100000000)
1.8063910007476807
>>> timeit.timeit('if not a: pass', setup='a=[]', number=100000000)
2.0614678859710693