Units for size in /proc/partitions don't make sense

parted and lsblk reports the logical/physical block (aka sector) size properly. You can double check this using smartctl -i /dev/sda.

blockdev --getpbsz --getss /dev/sda reports the right information too.

/proc/partitions reports sizes in KiB but it's completely unrelated to the physical block size of the device, instead it's the buffer cache block size.

blockdev --getbsz /dev/sda probably reports the actual IO size ( 4KiB matches kernel page size).