Вам нужно добавить:
GROUP BY events.id
Например
Всё работает:
CREATE TABLE `author` (
`id` INT(10) NOT NULL,
`name` VARCHAR(200) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`fam` VARCHAR(200) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`birthday` DATE NULL DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `books` (
`id` INT(10),
`id_author` INT(10) NULL DEFAULT NULL,
`book` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`id`),
INDEX `id_author` (`id_author`)
);
INSERT INTO `author` (`id`, `name`, `fam`, `birthday`) VALUES (1, 'Николай Николаевич', 'Носов', '2008-11-23');
INSERT INTO `author` (`id`, `name`, `fam`, `birthday`) VALUES (2, 'Артур Конан', 'Дойль', '1859-05-22');
INSERT INTO `books` (`id`, `id_author`, `book`) VALUES (1, 1, 'Незнайка учится');
INSERT INTO `books` (`id`, `id_author`, `book`) VALUES (2, 1, 'Незнайка-путешественник');
INSERT INTO `books` (`id`, `id_author`, `book`) VALUES (3, 1, 'Винтик, Шпунтик и пылесос');
SELECT a.id, a.name, a.fam, GROUP_CONCAT(DISTINCT b.book ORDER BY b.book ASC SEPARATOR ', ') AS books
FROM `author` a
LEFT JOIN `books` b ON a.id=b.id_author
GROUP BY a.id;