If you want both logged in and non-logged in user to see the same thing then you only want 'published' post status, at least it doesn't make sense to me to show 'private' posts to non-logged in users. Alter you query to include that condition.

    $most_recent_sticky_post = new WP_Query( 
      array( 
        'post_status' => array( 'publish' )
        // Only sticky posts
        'post__in'            => $sticky, 
        // Treat them as sticky posts
        'ignore_sticky_posts' => 1, 
        // Order by date to get the most recently published sticky post
        'orderby'             => date, 
        // Get only the one most recent
        'posts_per_page'      => 1
        ) 
    );

`ignore_sticky_posts`, when `true` as you have it, treats sticky posts like ordinary posts, which is not what your code comment says but I think that is what you mean.