Можно ли заменять в SQL запросе ' на "?
Эти функции - какой-то ужас, летящий на крыльях ночи. mysql_real_escape_string - вообще за гранью добра и зла. 
Но главное, что я не могу понять - это какое отношение к mysql и mssql имеет функция  xss_clean. Ну то есть я даже представить себе не могу, как можно функцию для защиты от xss применять для любых манипуляций c SQL. Это - я не знаю - как положить деньги в презерватив от грабителей. Он же служит для безопасности. Ну вот деньги и будут в безопасности. 
По теме: ради всего святого, используйте PDO с подготовленными выражениями. Это сделает ненужной всю эту мышиную возню с регулярками. PDO поддерживает как mysql, так и mssql, так что разница будет только в синтаксисе запросов, а сам код работы с запросами будет один и тот же$sql = "SELECT TOP 10 * FROM user where mssql.department_id=?";  
$stmt = $conn->prepare($sql);  
$stmt->execute([$_GET['department_id']]); 
$users = $stmt->fetchAll();

$sql = "SELECT * FROM user where mysql.department_id=? LIMIT 10";  
$stmt = $conn->prepare($sql);  
$stmt->execute([$_GET['department_id']]); 
$users = $stmt->fetchAll();
Как можно заметить, в запросах нет ни одной кавычки вообще, что делает сам вопрос про замену бессмысленным. 
От XSS же надо защищаться совсем в другом месте, и также без всего этого ужаса
В плане самого вопроса - можно, почему нет, у меня все работает годами без проблем, другой вопрос что на определенном этапе проект разрастется до того, что нужно будет переходить на PostgreSQL, там западло и начнется, так как она принимает только одиночные кавычки, так что лучше изначально использовать одиночные.