wp_nav_menu not highlighting the current category when viewing a single post

There are several built-in CSS classes that come with the wp_nav_menu.

In your case, you are looking for something like a current category class, which is not included. But we can easily add that to the CSS classes:

function wpse_134409_current_category_class($classes, $item) {
    if (
        is_single()
        && 'category' === $item->object
        && in_array($item->object_id, wp_get_post_categories($GLOBALS['post']->ID))
    )
        $classes[] = 'current-category';

    return $classes;
} // function wpse_134409_current_category_class

add_filter('nav_menu_css_class', 'wpse_134409_current_category_class', 10, 2);

Please note: this code is untested!

Now you can target your menu item like so:

#menu-id li.current-category {
    /* styles */
}