It was just an input-bug
Japt, 22 21 bytes
¬Å£¬qYîÃy w ê y w ê ·
Test it online!
Explanation
The first 8 bytes generate the bottom-right quadrant of the pattern:
¬ Å £ ¬ qYîÃ
Uq s1 mXY{Uq qYî}
Uq : Split the input into characters.
s1 : Slice off the first.
mXY{ } : Map each item X and index Y to
Uq : the input split into chars,
q : joined with
Yî : Y spaces.
At this point we have an array of e.g. ["ABCD", "A B C D", "A B C D"]
. Unfortunately, it takes 13 bytes to square this:
y w ê y w ê ·
y w ê y w ê qR
y : Pad each line to the same length with spaces and transpose.
w : Reverse the array, and
ê : palindromize. Now we have the bottom half of the output transposed.
y : Transpose back.
w ê : Reverse and palindromize again, giving the full output.
qR : Join with newlines.
: Implicit: output result of last expression
Python 3, 149 141 95 bytes
def f(s):l=len(s)-1;[print((' '*abs(i)).join(s[:0:-1]+s).center(2*l*l+1))for i in range(1-l,l)]
Try it online!
Thanks to @KevinCruijssen and @ETHproductions for saving some bytes
Special thanks to @notjagan for saving 46 bytes!
05AB1E, 17 bytes
g<F¹RSðN×ýû})Rû.c
Try it online!
-1 thanks to kalsowerus.