WP_Query() returns null when results exist!

The is_single function (used in your excerpt.php file) returns true only when the main query contains one single post. Since you’re calling get_template_part from an archives page, your query contains more than one post, so is_single returns false and your excerpt.php file bails. Remove the check for is_single and you should be good to go.

More about is_single: http://codex.wordpress.org/Function_Reference/is_single

More about conditional tags: http://codex.wordpress.org/Conditional_Tags

Hope this helps.