Preventing Duplicating Posts from Widgets

You should use post__not_in parameter (see Post & Page Parameters in Codex). Since it takes an array you will also need to switch to array rather than string for passing arguments.

Something like this:

query_posts(array(
    'showposts' => 1,
    'cat' => get_catId( $instance['catOption4'] ),
    'post__not_in' => $themename_do_not_duplicate,
    ));