sort and display posts by custom field (wp-query and the loop))

I believe the meta_query part should be a nested array, so your query should be like this:

$query = new WP_Query(
    'post_type' => 'post',
    'orderby' => 'meta_value',
    'meta_key' => 'ENDS',
    'order' => 'ASC',
    'posts_per_page' => -1,
    'meta_query' => array(
        array (
            'key' => 'ENDS',
            'value' => date('Y-m-d H:i:s'), // now
            'compare' => '>=',
            'type' => 'DATETIME',
        ),
    ),
);

Note that I also added the ‘type’ => ‘DATETIME’ to the meta_query inner array.

Hope this helps.