Your function is fine, but 'get_header'
it’s too late.
Use template_redirect
instead:
add_action( 'template_redirect', function() {
if ( is_user_logged_in() || ! is_page() ) return;
$restricted = array( 250, 253 ); // all your restricted pages
if ( in_array( get_queried_object_id(), $restricted ) ) {
wp_redirect( site_url( '/user-registration' ) );
exit();
}
});
Be sure to not include ‘user-registration’ page id in $restricted
array or you’ll experience an endless redirect…