Это должно работать:
Сначала вы возвращаетесь в ЛИ, а затем ищете флажки
$('#parent > li input[type=checkbox]').click(function() {
$(this).closest("li").find("ul li input[type=checkbox]").attr('checked', $(this).is(':checked'))
});
Однако вы можете рассмотреть возможность добавления некоторых имен классов.
Таким образом, ваш код становится более читабельным.
<li>
<input type='checkbox' class='category'>first</input>
<ul>
<li><input type='checkbox' class='subcategory'>child1</input>
</li>
<li><input type='checkbox' class='subcategory'>child2</input>
</li>
</ul>
</li>
Чем ваш jQuery будет выглядеть так:
$("#parent .category").click(function(){
$(this).closest("li").find(".subcategory").attr('checked', $(this).is(':checked'))
});