I wish to display custom groups using their sub-groups inside a nested list.

This appears to works:

<?php wp_list_categories('hide_empty=0&depth=2&hierarchical=1&title_li='); ?>

but when I include some custom groups it does not:

<?php wp_list_categories('hide_empty=0&depth=2&hierarchical=1&title_li=&include=7,8,1,4'); ?>

Generally, the include parameter in query functions such as this overrides other parameters. That's, you'll only return the groups that you simply include as opposed to the ones you include as well as the ones queried for through the other parameters.

The query_posts, get_posts, and Wordpress_Query constructs work such as this, too.