ТС не тупи, див создается _после_ нажатия кнопки, которое произойдет через миллион лет в летосчислении компа, после того как скрип закончится.
Так не делается. Событие должно завершится чем-то осмысленным и полезным, в смысле обработка события.
var div2 = document.querySelector('.con')
function div(){
var div = document.createElement('div');
/* бла-бла */
document.body.insertBefore(div, document.body.firstChild)
}
/* это случится ПОТОМ, через миллиарды тиков процессора */
btn.onclick = div
/* а это случается через 1 тик после предыдущей строки */
var con = document.querySelector('.con');
Разумеется того, что произойдет в будущем, в настоящем нету. То есть тут просто полное непонимание event driven application )))