ちょっと興味を覚えたご質問でしたので試してみました。
Select()内でifを入力するとifは無効と出てしまいます。
このこと自体は、Selectメソッドの中でラムダ式を使うようにすればクリアできます。提示のコードの延長であれば、以下のようなコードになるでしょうか。
C#
1q = item.Select((x) =>
2{
3    if (x >= 1000)
4    {
5        return "A";
6    }
7    if (x >= 100)
8    {
9        return "B";
10    }
11    return "C";
12});
あとは、3項演算子の考え方の延長程度になりますが、条件を判定するメソッドを各々用意して値を引き渡していくなど。例えば以下のようなCond1, Cond2, Cond3のようなメソッドを用意して、順に判定させていく。条件をパスしなければ次のメソッドに引き渡す。
C#
1    static string Cond1(int v)
2    {
3        if (v >= 1000)
4        {
5            return "A";
6        }
7        else
8        {
9            return Cond2(v);
10        }
11    }
12
13    static string Cond2(int v)
14    {
15        if (v >= 100)
16        {
17            return "B";
18        }
19        else
20        {
21            return Cond3(v);
22        }
23    }
24
25    static string Cond3(int v)
26    {
27        return "C";
28    }
29
この案は、以下のように使います。
C#
1q = item.Select(x => Cond1(x));
全部まとめたコードを示しておきます。
C#
1using System;
2using System.Linq;
3
4class Program
5{
6    static void Main(string[] args)
7    {
8        int[][] jagArray =
9        {
10            new int[]{10,50,500,1000},
11            new int[]{100,50,1,},
12            new int[]{500,10},
13            new int[]{50},
14        };
15
16        foreach (var item in jagArray)
17        {
18            var q = item.Select(x => x >= 100 ? (x >= 1000 ? "A" : "B") : "C");
19            Console.WriteLine(string.Join(" ", q));
20
21            q = item.Select((x) =>
22            {
23                if (x >= 1000)
24                {
25                    return "A";
26                }
27                if (x >= 100)
28                {
29                    return "B";
30                }
31                return "C";
32            });
33            Console.WriteLine(string.Join(" ", q));
34
35            q = item.Select(x => Cond1(x));
36            Console.WriteLine(string.Join(" ", q));
37        }
38    }
39
40    static string Cond1(int v)
41    {
42        if (v >= 1000)
43        {
44            return "A";
45        }
46        else
47        {
48            return Cond2(v);
49        }
50    }
51
52    static string Cond2(int v)
53    {
54        if (v >= 100)
55        {
56            return "B";
57        }
58        else
59        {
60            return Cond3(v);
61        }
62    }
63
64    static string Cond3(int v)
65    {
66        return "C";
67    }
68}
実行すると以下のように同じ結果を得ます。.NET Framework 4.5で試したコードなので、C#自体のバージョンも特に最新のものでなくて大丈夫です。
terminal
1PS C> .\ConsoleApp1.exe
2C C B A
3C C B A
4C C B A
5B C C
6B C C
7B C C
8B C
9B C
10B C
11C
12C
13C
14PS C>
「質問への追記・修正の依頼」欄で既にコメントをいただいているように、別の良い方法もありそうです。