How to exclude posts from a category when using this particular format

First, don’t use query_posts(). Just get rid of the call entirely. It will break things.

Second:

I tried adding the following before the query_posts ( function but it does nothing.

Callbacks and add_action() calls belong in functions.php, not in the template file. If you’ve put it directly in home.php, remove it from there, and put it in functions.php.

Third:

Your pre_get_posts() filter uses the if ( is_feed() ) conditional. The is_feed() conditional returns true when an RSS feed is being output, not on the blog posts index (which is what is output via home.php). Try using is_home() instead.

Fourth:

Don’t call set_query_var() inside your callback. Use $query->set() instead.

Putting it all together

Use the following in functions.php

<?php
function wpse55358_filter_pre_get_posts( $query ) {
    // Let's only modify the main query
    if ( ! is_main_query() ) {
        return $query;
    }
    // Modify the blog posts index query
    if ( is_home() ) {
        // Exclude Category ID 1
        $query->set( 'cat', '-1' );

        // Build featured posts array
        $featured_posts_array = featured_posts_slider();

        // Exclude featured posts
        $query->set( 'post__not_in', $featured_posts_array );
    }
    // Return the query object
    return $query;
}
add_filter( 'pre_get_posts', 'wpse55358_filter_pre_get_posts' );
?>

Questions

What category are you trying to exclude? Are you sure the ID is 1?