С использованием this работает.
document.addEventListener("DOMContentLoaded", function(){
var el = document.getElementById('base').children.length
for(var i = 1; i <= el; i++)
{
document.getElementById('cat_' + i).onclick = function(){
this.parentNode.getElementsByTagName("ul")[0].style.display = "none"
}
}
}, false)
Да, добавьте символ # в href ссылок, уж если вам нужно их использовать, поскольку нажатие на ссылку с пустым href приводит (в хроме по крайней мере) к перезагрузке страницы и узел, соответственно, опять разворачивается.