BUG: Parse missing values using read_json with dtype=False to NaN instead of None (GH28501)

- [x] closes #28501 
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Nice PR! Looks like there is a merge conflict in the whatsnew - if you can fix that up we can get this merged Merged master, but CI fails due to unrelated reasons. Will retry with new updates from master later today @avinashpancham can you merge master once again @jreback merged master and updated whatsnew entry hmm precommit checks are failing, can you merge master and ping on green Still some issues, will try again tomorrow thanks @avinashpancham  I'm not sure that there was consensus in the issue discussion on the correct behaviour or whether it is a bug. Maybe worth considering moving the release note into the breaking changes section in case anyone is depending on this behaviour. > I'm not sure that there was consensus in the issue discussion on the correct behaviour or whether it is a bug. Maybe worth considering moving the release note into the breaking changes section in case anyone is depending on this behaviour.

type dtype option is actually pretty odd anyhow (and should deprecate)

 I think most voices in the issue actually argued that the current behaviour was correct, and so IMO we should not have changed it to start with.  there was exactly 1 comment Will opened the issue, and 2 people commented on it arguing not to change it (and a third one commented as well, but off-topic), no one else argued in favor of the change.

Anyway, I don't think counting the numbers is that important, but I agree with @simonjayhawkins that there was certainly no clear consensus

 On the None vs NaN, I am personally quite ambivalent, but when disabling parsing I think we should *not* return float dtype for this case.  you can revert if u want
not that important 

this was removing a special case though - it was very odd 