Custom Shortcode, functions PHP WP_Query loop

You are returning inside your loop – so it returns on the first iteration, giving you one result only.

You should build a string inside your loop instead, and only return when the loop is over.

Something like

$featured_properties="";

      if( $featured_query->have_posts() ):

            while( $featured_query->have_posts() ) : $featured_query->the_post();

                $featured_properties .= get_the_title() . '<br />';

            endwhile;

        endif; wp_reset_query();

 return $featured_properties;