You have to learn what is jsonPath for.It is impossible to use jsonPath to extract something from one only property. this is much easier
var jObj=JObject.Parse(json);
int? value = jObj["id"].ToString() == "15" ? (int)jObj["value"] : null; //1
json path is working only with collections, so move your object inside of the array
var json = "[{\"id\":\"15\", \"value\":1}]";
var jArr = JArray.Parse(json);
int id= (int) jArr.SelectToken("$[?(@.id=='15')].value"); //1
//or
int id = (int) jArr.SelectToken("$[?(@.id=='15')]")["value"]; //1