{x,y} is brace expansion (initially from csh in the 70s), not parameter expansion.
In the fish shell, list expansion behaves like csh parameter expansion.
For instance:
> echo //(string split -- ';' (locale mon))//
//January// //February// //March// //April// //May// //June// //July// //August// //September// //October// //November// //December//
Same as:
% echo //{January,February,...}//
//January// //February// //...//
in csh (or shells that have copied that feature from csh).
In fish, command substitution is with (cmd) instead of `cmd` in Bourne/csh or $(cmd) in Korn like shells.
It's also the case in the rc shell in this case:
; echo //^``(';
'){locale mon}^//
//January// //February// //March// //April// //May// //June// //July// //August// //September// //October// //November// //December//
In rc, command substitution is with `cmd or `{more complex cmd}, and there's a ``(seps){cmd} form to specify the list of separators instead of $ifs. You'll notice here we use both ; and newline as we don't want the trailing newline output by locale mon to be included in the last element. fish splits on newlines and its string split outputs each element one per line¹
Where it differs from fish's expansion or csh-style brace expansion is when two lists with a number of elements other than 1 are concatenated together:
$ rc -c 'echo `{seq 3}^`{seq 3}'
11 22 33
$ fish -c 'echo (seq 3)(seq 3)'
11 12 13 21 22 23 31 32 33
$ fish -c 'echo (seq 2)(seq 3)'
11 12 13 21 22 23
$ rc -c 'echo `{seq 2}^`{seq 3}'
rc: line 0: bad concatenation
zsh behaves like rc or actually more like fish or csh-style brace expansion for its parameter expansions when the rcexpandparam option is on. And that style of expansion can be enabled on a per-expansion basis using the $^param syntax.
It's also possible there to have command substitutions within parameter expansions:
$ echo //${(s[;])^"$(locale mon)"}//
//January// //February// //March// //April// //May// //June// //July// //August// //September// //October// //November// //December//
There, the $(cmd) command substitution strips trailing newline characters like in most other shells and the s[;] parameter expansions flag here applied to the quoted substitution splits on ; instead of relying on $IFS.
zsh also has builtin support to get the list of localised month names in its zsh/langinfo module:
$ zmodload zsh/langinfo
$ echo //${(v)^langinfo[(I)MON_<1-12>]}//
//January// //February// //March// //April// //May// //June// //July// //August// //September// //October// //November// //December//
¹ having elements contain newline is possible but very cumbersome there.