You can simplify your join condition and you need a string_agg() to get the comma separated list of author names:
select string_agg(author_name,','), count(*) from mas_book_author b join mas_bk_accession_entry e on b.author_id = any(string_to_array(author_ids,',')::int) where e.author_ids="1,5";
Online example: http://rextester.com/NVNBH72654
But you should really fix your data model. Storing comma separated values like the
author_ids column is a really, really bad choice.