с использованием двух селекторов. Можно получить все и пусто.
const totalDivs = document.querySelectorAll("#wrapper div").length;
const emptyCount = document.querySelectorAll("#wrapper div:empty").length;
const filledCount = totalDivs - emptyCount;
console.log({ emptyCount, filledCount });
<div id="wrapper">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div>123</div>
<div>123</div>
</div>
Или с al oop с уменьшением.
const divs = document.querySelectorAll("#wrapper div")
const result = Array.from(divs).reduce( function (o, d) {
const key = d.innerHTML.length ? 'filledCount' : 'emptyCount';
o[key]++;
return o;
}, { emptyCount: 0, filledCount: 0 })
console.log(result);
<div id="wrapper">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div>123</div>
<div>123</div>
</div>