How do I reset this wp_list_categories query?

wp_list_categories() is a simple function that returns (or echos, depending on parameter) a list of links to category archives. It needs not to be reset.

When you create a new instance of the WP_Query class you need to reset postdata, because Template Tags otherwise use that query and not the main query.

You’ve said:

I’m using two of these queries (with different category include strings)…

I am assuming, the “category include strings” are the only difference in the two queries?!

In the second time you’re using this snippet, the variables $cat_left and $cat_rightare the actual culprits. They do not get overwritten, the new values are added to the end of the array.

Rename them to $cat_left_2 and $cat_right_2 the second time around or set them to NULL inbetween:

// first list here
$cat_left = NULL;
$cat_right = NULL;
// second list here