Первым параметром значится свойство, на которое распространяется эффект. Если указано top, значит эффект накладывается на изменение положения сверху. На display этот эффект не будет действовать. Выход - использовать visibility, например
<style>
.catalog-menu a {
padding: 10px 0;
}
.submenu {
background: #654B36;
position: absolute;
width: 950px;
height: 420px;
text-decoration: none;
font: normal 17px Arial;
display: block;
visibility: hidden;
margin-top: 10px;
margin-left: -492px;
padding: 10px 0;
z-index: 1;
-webkit-transition: visibility 1s ease-out 0.5s;
-moz-transition: visibility 1s ease-out 0.5s;
-o-transition: visibility 1s ease-out 0.5s;
transition: visibility 1s ease-out 0.5s;
}
.catalog-menu a:hover + div{
visibility: visible;
}
.submenu:hover {
visibility: visible;
}
</style>
<ul>
<li>
<a href="/">ГЛАВНАЯ</a>
</li>
<div class="catalog-menu">
<li>
<a href="/catalog">КАТАЛОГ</a>
<div class="submenu">
<a href="/catalog/analoi/">АНАЛОИ</a>
<a href="/catalog/analoi/analoi_metallicheskie/"><span id="qwerty">металлические</span></a>
<a href="/catalog/analoi/analoi_derevyannye/"><span id="qwerty">деревянные</span></a>
</div>
</li>
</div>
</ul>