Note that this part:
'post_status' => 'published',
should be:
'post_status' => 'publish',
You can then try the following:
$args = array(
'post_type' => 'gutschein',
'pagination' => true,
'posts_per_page' => '10',
'posts_per_archive_page' => '10',
'ignore_sticky_posts' => false,
'post_status' => 'publish',
'paged' => $paged,
'meta_key' => 'unixendet',
);
add_filter( 'posts_orderby', 'emti_orderby' );
$q = new WP_Query( $args );
remove_filter( 'posts_orderby', 'emti_orderby' );
where we setup a conditional ordering:
/**
* Modify the order by part:
*/
function emti_orderby( $orderby )
{
global $wpdb;
$time = current_time( 'timestamp' ); // Get current unix timestamp
return "
CASE
WHEN {$wpdb->postmeta}.meta_value >= {$time}
THEN {$wpdb->postmeta}.meta_value+0 - {$time}+0
WHEN {$wpdb->postmeta}.meta_value < {$time}
THEN {$wpdb->postmeta}.meta_value+0
END
ASC
";
}