Weird problem on if statement

there is no third parameter for get_field, may be causing your error.

EDIT-

In your current code, if the 10 most recent posts don’t contain a post with your meta key, you’ll see nothing since you’re only getting 10 posts and then filtering them. Any query that doesn’t specify number of posts defaults to your reading settings, which you say was 10.

also, if this is not your page’s primary loop, you should be using WP_Query and not query_posts. If it is your page’s primary loop, you should use a pre_get_posts action hook rather than query_posts. basically, there’s no reason to ever use query_posts 🙂

a much more efficient means of selecting your posts via WP_Query is to query specifically for the ones with the key rather than filtering them after the fact:

$args = array(
    'posts_per_page' => -1, // get all of them
    'post_type' => 'vendors',
    'meta_key' => 'promote_to_homepage'
);
$homepage_posts = new WP_Query( $args );
while( $homepage_posts->have_posts() ):
    $homepage_posts->the_post();
    // all your normal loop stuff here
    the_title();
endwhile;