Вам наверно для всех li такое нужно
Типа такого.
<head>
<style>
.box_2 > div {
display: none;
}
.box_2 > div.open {
display: block;
}
</style>
</head>
<body>
<div class="box_1">
<ul>
<li class="hav_sub" data-main-id="99">111</li>
<li class="hav_sub" data-main-id="105">222</li>
<li class="hav_sub" data-main-id="23">333</li>
</ul>
</div>
<div class="box_2">
<div class="subcategory_box" data-id="99">aaa</div>
<div class="subcategory_box" data-id="105">sss</div>
<div class="subcategory_box" data-id="23">ddd</div>
</div>
<script>
const lis = document.querySelectorAll('.box_1 li')
for (const li of lis) {
li.addEventListener('mouseenter', ({target}) => {
const id = target.dataset.mainId;
const divs = document.querySelectorAll(`.subcategory_box`)
for (const div of divs)
div.classList.remove('open');
const div = document.querySelector(`.subcategory_box[data-id="${id}"]`)
div.classList.add('open')
})
}
</script>