How to stop filter from running on the index.php page?

You need to return content from filter function.

function find_my_image( $content ) {
    if( is_single() ) {
        if ( preg_match('#(<img.*?>)#', $content, $result ) ){
            $content .= '<p>Image has been found</p>';
        }
        else{
            $content .= '<p>Sorry, no image here!</p>';
        }
    }
    return $content;
}

add_filter( 'the_content', 'find_my_image' );