Попробуйте воспользоваться консолью файербага.
Посмотрите, что происходит при первом клике, при втором.
Очень часто в консоли все видно и становится понятно.
Вообще, ваш код не очень оптимизирован.
Вот такой вариант тоже можно попробовать:
<ul>
<li>
<a> <img src="plus.png" style="display:none" /><img src="minus.png" /> </a>продукт 2
<ul>
<li>
<a> - </a>продукт 2.1
<ul>
<li>
<a> + </a>продукт 2.1.1
<li>
<li>
<a> + </a>продукт 2.1.2
</li>
</ul>
</li>
<li>
<a> - </a>продукт 2.2
</li>
<li>
<a> - </a>продукт 2.2
</li>
</ul>
<li>
</ul>
</li>
</ul>
$(document).ready(function(){
$('a').live('click',function(){
$(this).addClass('rich'). // при первом клике добавляем метку ссылке чтобы повторно не обращаться к ajax
next('ul').slideToggle().end().
find('img').toggle(); // здесь меняем видимость у рисунков плюса и минуса. Вначале должна быть разная.
});
$('a:not(.rich)').live('click', function(){/* здесь подгрузка через ajax для нетронутых ранее ссылок*/})
});