Как выполнить код синхронно в nodejs?
Вам не нужно здесь выполнять код синхронно. Нужно просто дожидаться вызова 2х коллбек функций и затем выполнять res.end(). Проще всего это сделать при помощи модуля async:var async = require("async");

// ...


var tasks = [];

if (price) {
    tasks.push(function(callback) {
        connection.query('UPDATE fotopovtory SET price="' + price + '" WHERE foto_id = "' + itemId + '";', callback);
    });
}

if (type) {
    tasks.push(function(callback) {
        connection.query('UPDATE fotopovtory SET tipe="' + type + '" WHERE foto_id = "' + itemId + '";', callback);
    });
}

async.parallel(tasks, function(err) {
    if (err) throw err;
    res.end();
});
Конкретно в этом примере можно было бы выполнять 0 или 1 запрос в зависимости от наличие данных.
И res.end(); у вас сейчас тоже, как мне кажется, не верно расположен. Если запрос будет выполняться дольше то он не успеет выполниться раньше чем выполниться res.end(); его по хорошему в этом случае надо вызывать из callbaсk  функции.
Если я всё правильно понимаю в NodeJS
Как-то так:if(price || type) {
	//составляем sql запрос, с 1 или 2 полями
    connection.query('UPDATE fotopovtory SET ....... WHERE foto_id = "' + itemId + '";', function(err, rows, fields) {
		  if(err){
			res.writeHead(500);
			res.end();
		  } else {
			res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8'});
			res.end(results);
		  };
    });
} else {
  res.writeHead(404);
  res.end();
}