Best guess: Your RaspPi is connected to the router via LAN, while the "target" phone and the Windows PC are connected via WLAN. That means while the phone and the Windows PC are in the same segment and ARP works as intended, normally the LAN and the WLAN wouldn't be in the same segment.
Since they seem to be in the same segment (same /24 prefix), I'd assume the router does some fancy things to make that work, like MAC NAT via ebtables. The fact that the "spoofed" MAC address only differs in vendor prefix, and the vendor prefix doesn't seem to be valid, also points to this.
You can test this by connecting your Windows PC to the router via LAN (cable), and see which MAC address it reports in that case.
Another way to test it is to get root access to your router, and have a look at what's happening inside.
If this guess is correct, it's purely a router issue, not an issue of Linux vs. Windows. Windows will also find the "wrong" MAC address if the Windows PC is connected via LAN, while the target phone is connected via WLAN. Every device that is connected via WLAN will see the "wrong" MAC address of every device that is connected via LAN, and vice versa.
And you can't "work around" it, unless you can configure your router to disable it. In that case you'll have probably different subnets for LAN and WLAN, and the RaspPi in the LAN won't see the MAC of any device in the WLAN at all (and vice versa), though they can communicate with each other.
That's just how networking works.
The question is: Why do you need the "correct" MAC address in the first place? You shouldn't need to.