Как исправить «subquery returns more than 1 row» в «after update» триггере?
А что вы пытаетесь тут сделать? Вот конкретно этот подзапрос (SELECT id FROM test1) он для чего? Вы выбираете все записи из таблицы test1, что, как бы, очень подозрительно. А если там будет миллион записей?

У вас в триггере есть переменные NEW и OLD, указывающие на обновленную запись в таблице test1 - вот и используйте их, чтобы определить какие записи в таблице test2 вам нужно обновить.
у вас в UPDATE входит два подзапроса. какой-то из них возвращает больше одной строки, что не применимо в данной ситуации.

например, вот этот блок (SELECT value1 FROM test1) - 
в случае, если ваша таблица test1 содержит больше одной строки, этот запрос вернет их все.
если вам нужно получить новое значение столбца обновляемой таблицы, вы можете, как заметил комментатор выше, использовать NEW или OLD:
UPDATE `database`.`test2` SET `value1` = NEW.value1 * 2...

аналогично предыдущему, 
WHERE (`id` = (SELECT id FROM test1));
вернет столько строк с одним столбцом id, сколько существует в таблице test1, что не допустимо для оператора равенства.
если вам нужно обновить строку в таблице test2, id которой такой же, как и id у обновляемой записи в test1, то следует использовать NEW.id и ваш запрос приобретет следующий вид:

CREATE DEFINER=`root`@`localhost` TRIGGER `afupd_yzv2` AFTER UPDATE ON `test1` FOR EACH ROW BEGIN 
    UPDATE `database`.`test2` SET `value1` = NEW.value1 * 2 WHERE `id` = NEW.id
END