Предложение говорит о том, что Джон пока не может водить машину. Это может быть связано с его возрастом.
a) old enough – достаточно взрослый. 'John isn't old enough to drive a car' означает, что он недостаточно взрослый.
b) too old – слишком старый. 'John isn't too old to drive a car' означает, что он не слишком стар, чтобы водить (что противоречит смыслу).
Для обозначения, что кто-то не может что-то сделать из-за недостатка чего-либо (в данном случае возраста), используется конструкция 'not ... enough'.
Ответ: a) old enough