You are doing this outside the loop, so you need to supply the post id I think.
<?php
$queried_object = get_queried_object();
$post_id = $queried_object->ID;
if( get_field('redirect', $post_id) ): ?>
<?php
$url = the_field('redirect', $post_id);
?>
<?php
header("Location: $url?". $_SERVER['QUERY_STRING'], true, 301);
exit;
?>
<?php endif; ?>