Первое что бросается в глаза — использованы пробелы вместо табов, это быдлокодерство (почему — гуглить по запросу "Tab indent space alignment"). Также после if нужен пробел.
if (createUser(123, 123, 1, 123)) писать бессмысленно, т. к. функция createUser() всегда сразу же возвращает промис ещё до начала фактического выполнения функции. Только потом спустя функция начнёт выполняться, и в тот момент, когда выполнение дойдёт до return или throw, функция заполнит этот промис результатом или ошибкой. Т. е. суть в том, что async-функция — это функция, возвращающая промис. Раньше вам приходилось самому возвращать промис, а теперь функция возвращает его за вас. (PS. В реальности, если вдаваться в подробности, то на самом деле функция начнёт выполняться сразу же до первого await, но даже если await'ов не будет, возвращён будет всё-равно промис).
Чтобы решить проблему, нужно либо написать createUser(123, 123, 1, 123).then(bool => { ... }), либо обернуть вызов функции в другую async-функцию, чтобы была возможность использовать await. Конечно же, такая обёртка тоже вернёт промис.
Также нужно отметить, что try catch писать необязательно, вместо этого можно отловить ошибку прямо в указанной выше обёртке (или с помощью .then(value => {}, err => {})). Т. е. отловить ошибку рано или поздно придётся, но необязательно это делать в каждой функции — чаще всего достаточно один раз в конце.