Only display sticky post or latest post in custom loop

You can adapt your first loop to either show a sticky post or the latest post in the following manner: PLEASE NOTE: You have to reset your custom query

<?php 

$args = array(
    'posts_per_page' => 1,
    'post__in'  => get_option( 'sticky_posts' ),
    'ignore_sticky_posts' => 1
);
$my_query = new WP_Query( $args );

$do_not_duplicate = array();
while ( $my_query->have_posts() ) : $my_query->the_post();
    $do_not_duplicate[] = $post->ID; ?>

<div id="post-<?php the_ID(); ?>" <?php post_class( '' ); ?> >
            <div class="featuredimage">
                <a href="https://wordpress.stackexchange.com/questions/161279/<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_post_thumbnail('home-thumbnail'); ?></a>
            </div>
            <h2><a href="https://wordpress.stackexchange.com/questions/161279/<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
        </div>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); //VERY VERY IMPORTANT?>

Source: Sticky Posts

EDIT

The remove sticky posts from the main query, you can make use of the pre_get_posts action to remove sticky posts before the main query executes. Paste the following in your functions.php

add_action('pre_get_posts', 'wpse161279_ignore_sticky_posts');
// the function that does the work
function wpse161279_ignore_sticky_posts($query)
{
    if (!is_admin() && $query->is_main_query())
        $query->set('post__not_in', get_option('sticky_posts'));
}

EDIT 2

I haven’t tested this, nor am I familiar with this, but I think you can try to do the following

add_action('pre_get_posts', 'wpse161279_ignore_sticky_posts');
// the function that does the work
function wpse161279_ignore_sticky_posts($query)
{
    if (!is_admin() && $query->is_main_query()) {
        $sticky = get_option( 'sticky_posts' );
        $query->set( 'post__not_in', array( $sticky[0] ) );
    }   
}

EDIT 3

Paste the following code just after line 4 in your first block of code in your question and then post the results

<pre><?php var_dump($wp_query->query_vars['post__not_in']); ?></pre>    
<pre><?php var_dump(get_option( 'sticky_posts' )); ?></pre>
<pre><?php var_dump($wp_query->query_vars['ignore_sticky_posts']); ?></pre>

You should get results familiar than these

enter image description here

EDIT 4

Add the following to the code above. This will print the ID of the first post. If it matches the second value of the second result, it means that your sticky post is actually displayed like it should

<pre><?php var_dump($wp_query->posts[0]->ID); ?></pre>

EDIT 5

FYI, this is how your site looks on my side. I have just removed the text parts and kept the images

enter image description here