Там с типами следующая тонкость: у тебя вот такой тип: content: Maybe<any[] | Record<string, any>> | undefined
То есть или пусто, или массив, или объект. То есть проверкой на наличие ты уже отметаешь undefined, и у тебя остается или массив или объект. Но по прежнему или то, или другое. Следовательно это лечится проверкой на то, что это не массив.
const blocks = beerinfo.content && !Array.isArray(beerinfo.content) && beerinfo.content?.blocks
Тогда ошибка пропадает, потому что остается только один вариант - это объект.

>> И ещё вопрос: в ImageList Material Ui можно сделать эффект лайтбокса или лучше react-lightbox-component использовать?
MUI не имеет эффектов типа лайтбокса, поэтому да, надо допкомпонент использовать.