Check for meta data before it is published

You need to check the $_POST fields as well – or better, instead of – for the same data which is being submitted, find this by the name attribute of the field input – it will probably match the existing keys you have. eg.

function add_sermons_automatically($post_ID) {
    if ( ( (isset($_POST['imic_vimeo_video'])) && ($_POST['imic_vimeo_video'] != '') ) 
      || ( (isset($_POST['imic_mp4_video'])) && ($_POST['imic_mp4_video'] != '') ) 
      || ( (isset($_POST['imic_ogg_video'])) && ($_POST['imic_ogg_video'] != '') ) 
      || ( (isset($_POST['imic_webm_video'])) && ($_POST['imic_webm_video'] != '') 
      || ( (isset($_POST['imic_youtube_video'])) && ($_POST['imic_youtube_video'] != '') ) ) {
        // (see alternative below)
        $sermons_cat = array(28);
        wp_set_object_terms( $post_ID, $sermons_cat, 'sermon-category');
    } else {
      // optionally remove the cateogory (see alternative below)
      // wp_set_object_terms( $post_ID, '', 'sermon-category');
    }
}

If you check it this way instead of checking the database, you could also remove the category automatically if all video values have been removed.

Note that this will overwrite any other categories checked doing it this way, if you want to assign multiple categories you will need to do wp_get_object_terms first and add the category to that array before (re)setting it. eg.

$terms = wp_get_object_terms( $post_ID, 'sermon-category');
$catids = array();
foreach ($terms as $term) {$catids[] = $term->term_id;}
$catids[] = '28'; // vido sermon category
wp_set_object_terms($post_ID, $catids, 'sermon-category');

Removing the video category automatically while preserving other categories is similar:

$terms = wp_get_object_terms( $post_ID, 'sermon-category');
$catids = array();
foreach ($terms as $term) {
    if ($term_id != 28) {$catids[] = $term->term_id;}
}
wp_set_object_terms($post_ID, $catids, 'sermon-category');

And finally, you should do this on both publish and update (save)…

add_action('publish_sermon', 'add_sermons_automatically');
add_action('save_sermon', 'add_sermons_automatically');