Как вернуть значение из Promise у Javascript?
У вас всё правильно, кроме того, что вы выводите b синхронно до того, как оно заполнится.
Как только у вас хотя бы в одной функции появляются промисы и асинхронность - забудьте про синхронный код, только .then().var b;
start(343910101)
.then(res => {b = res})
.then(() => console.log(b));
Вот часть моего кода где мне нужно вернуть значение: 
const findMany = ({value, columns = [], findByColumn}) => {
            return new Promise((resolve, reject) => {
                let query =new QueryBuilder().select(columns).from("users")
                    .where(findByColumn, "=", value)
                    .get();

                __db.query(query, (error, results, fields)=>{
                    if (error) reject(error);
                    __db.end();

                    if(results.length <= 0) resolve(null);

                    let users = [];
                    results.forEach((item, index, array)=>{
                        users.push(new User(item));
                    });
                    resolve(users)
                });
            });
        }

id : ({value, columns = []}) => {
                return findOne({
                    value,
                    columns,
                    findByColumn : "id"
                });
            },

И после получаю значение следующим образом:
let user = await User.findBy().id({value : 1});
console.log(user);