Javascript как передать значение из функции?
Можно просто строить маршрут не сразу, а только после выполнения запроса:$.ajax({
    ...
    success: function(data) {
        var singlePosition = new google.maps.LatLng(data.props[0].lat, data.props[0].lng);
        var request = {
            origin: coords,
            destination: singlePosition,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };
       directionsService.route(...);
       ...
    },
    ...
});
Тут вы можете вывести нужные данные из AJAX, но только через JSON-объект. Скопировать его можно будет так JSON.parse(JSON.stringify()). Но не забывайте, что callback функция AJAX придет тогда, когда от сервера поступит ответ, до тех пор программа будет выполнять следующий за AJAX код (почитайте про асинхронность и callback-функции). 
Поэтому все операции с данными, которые поступят от сервера, лучше выполнять внутри этого callback'а. В противном случае карта будет "ложиться" в любое удобное и неудобное время.