I think the easiest way to get the newest modified posts on top of the loop is via post injection using the the_posts
filter
add_filter( 'the_posts', function ( $posts, \WP_Query $q )
{
// Only target the main query on the home page
if ( $q->is_main_query()
&& $q->is_home()
&& !$q->is_paged() // Only target page one
) {
// Get the newest modified post
$args = [
'posts_per_page' => 1,
'category_name' => 'blog', // Note, this must be slug
'order' => 'ASC',
'orderby' => 'modified'
];
$newest = get_posts( $args );
// Make sure we have a post to inject
if ( !$newest )
return $posts;
// We have a post, append it to our array of posts
$posts = array_merge( $newest, $posts );
}
return $posts;
}, 10, 2 );
You can adjust this to your needs