Trying to use WP_Query to return post with and without meta values

You use both ‘meta_key‘ and ‘meta_query‘ – it is a wrong usage. Remove this code:

'meta_key' => 'date',

and try again.

After remove $cat WP produce sql query:

SELECT SQL_CALC_FOUND_ROWS  wp_posts.*
FROM wp_posts
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
WHERE 1=1
AND wp_posts.post_type="post"
AND (wp_posts.post_status="publish")
AND (
  (
    wp_postmeta.meta_key = 'date'
    AND CAST( wp_postmeta.meta_value AS CHAR) >= '03-17-2012'
  )
  OR (mt1.meta_key = 'no-date' AND CAST(mt1.meta_value AS CHAR) = '1' )
)
GROUP BY wp_posts.ID
ORDER BY post_date desc
LIMIT 0, 10

If You have no results, check your data, because query is correct.