Could you please try following. This should print the longest array(could be multiple in numbers same maximum length ones), you could assign it to later an array to.
echo "${pathList[@]}" |
awk -F'/' '{max=max>NF?max:NF;a[NF]=(a[NF]?a[NF] ORS:"")$0} END{print a[max]}'
I just created a test array with values provided by you and tested it as follows:
arr1=($(printf '%s\n' "${pathList[@]}" |\
awk -F'/' '{max=max>NF?max:NF;a[NF]=(a[NF]?a[NF] ORS:"")$0} END{print a[max]}'))
When I see new array's contents they are as follows:
echo  "${arr1[@]}"
/foo/bar/raw/2020/02/
/foo/bar/logs/2020/02/
Explanation of awk code: Adding detailed explanation for awk code.
awk -F'/' '                        ##Starting awk program from here and setting field separator as / for all lines.
{
  max=max>NF?max:NF                ##Creating variable max and its checking condition if max is greater than NF then let it be same else  set its value to current NF value.
  a[NF]=(a[NF]?a[NF] ORS:"")$0     ##Creating an array a with index of value of NF and keep appending its value with new line to it.
}
END{                               ##Starting END section of this program.
  print a[max]                     ##Printing value of array a with index of variable max.
}'