Seems like a bug to me.
var obj = JsonConvert.DeserializeObject<dynamic>("{\"arr\": [{\"prop1\": null}]}");
var prop1 = ob.arr[0].prop1; // has {} value
var test = ob.arr[0].prop1?.prop2; //causes error
'Newtonsoft.Json.Linq.JValue' does not contain a definition for 'prop2'