Change permalink for a single post entry

Try adding the following to your functions.php:

function wpse221475_custom_rewrite_rules() {

  add_rewrite_rule(
    '^(special-project)?', 
    'index.php?post_type=projects&name=$matches[1]', 
    'top'
  );

}

add_action('init', 'wpse221475_custom_rewrite_rules');

Make sure to flush your rewrite rules after adding this rule.

Visit:

Dashboard -> Settings -> Permalinks

Or if you wish, you can use flush_rewrite_rules() programmatically.

To redirect requests for http://example.com/projects/special-project to http://example.com/special-project you can parse the request on the wp hook.

function wpse221475_redirect_request($wp) {

    if ( ! empty($wp->request) && $wp->request === 'projects/special-project' ) {

        wp_redirect(home_url('special-project'), 301);
        exit;

    }

}

add_action('wp', 'wpse221475_redirect_request');

Of course there are other ways/methodologies you could use to achieve the same effect but the above will suffice.