data.header_link is a TypolinkParameter object, always truthy — check the resolved URL instead.
{f:uri.typolink(parameter: data.header_link)}
Button text comes from the link's own title, not `header` — `header` only feeds the aria-label below (see its label).
{data.header_link.title -> f:format.trim()}
{customCtaLabel}{f:translate(key: '{cb:languagePath()}:frontend.readMore')}