что данные в консоли - связываются по ссылке
и вполне может быть что в момент выполнения вашего кода HTMLCollection ещё пустая, и поэтому когда обращаешся к 0 получаешь андефайн, но к тому моменту когда смотришь в консоль на HTMLCollection там уже лежат данные
Так в том и дело, что все три операции идут одна за другой. Получается, что получаем чайлды и видим их, сразу же после этого пытаемся получить первый и внезапно undefined