Вы не понимаете, как работает ваш код.
Как будет выполняться ваш код:
var a;//Шаг 1
const myButton = document.querySelector('#myButton');//2
const content = document.querySelector('#content');//3
myButton.addEventListener('click', function () {//4, только объявление обработчика, не его выполнение
const xhr = new XMLHttpRequest();//6, эта строка будет выполнена только после того, как по кнопке кликнут
xhr.open('GET', 'http://testhtml/some.php');//7
xhr.send();//8
xhr.addEventListener('load', function () {//9, объявление обработчика, не его выполнение
a = xhr.responseText;//10, эта строка будет выполнена, только когда запрос завершится успешно
console.log(a);//11
return a;//12, эта строка бесполезна, можно удалить
});
});
console.log(a);//5, значение переменной все еще undefined
Чтобы вам иметь возможность работать с результатами запроса, код нужно писать в обработчике события load объекта xhr.
К удивлению, ничего внятного в сети по асинхронности быстро найти не удалось.