con.query асинхронный, код написаный после него (if (a)...), выполнится сразу, не дожидаясь выполнения запроса, поэтому а значение не задано, а то, что исполняется после выполнения запроса, описано в колбэке, там и производи все действия с результатами запроса