Counting certain elements in lists

For your result1:

Count[1] /@ data1[[All, 2, 1]]

For your result2:

Map[Count[1], data2[[All, All, 2, 1]], {2}];

r1 = Total[1 - Unitize[data1[[All, 2, 1]] - 1], {2}] 

Short @ %

{5,5,4,6,5,8,5,6,5,4,8,6,3,3,2,7,2,9,5,6,4,5,3,8,7,6,8,3,7,5,9,4,7,6,5,4,5,5,<<925>>,7,5,6,6,3,5,4,6,6,9,7,9,5,6,4,3,8,4,4,6,6,9,6,6,3,8,3,4,1,8,4,4,4,5,7,8,5}

r2 = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], {4}];
r2 // Dimensions

{50, 1000}

Timings: Timing comparison with OP's Do loop and MarcoB's Map[Count,...] for data2:

n1 = 1000;
n3 = 50;
data2 = Array[0 &, n3];
SeedRandom[1]
Do[data2[[i]] = {#, {RandomInteger[3, 20]}} & /@ Range[n1];, {i, 1, n3}];

result2a = Join @@@ Total[1 - Unitize[data2[[All, All, 2]] - 1], {4}]; // 
  RepeatedTiming // First

0.037

result2b = Map[Count[1], data2[[All, All, 2, 1]], {2}]; // RepeatedTiming // First

0.12

(result2 = Array[0 &, n3];
 Do[result2[[j]] = Table[Count[Flatten@(data2[[j, i, 2]]), u_ /; u == 1], 
  {i, 1, n1}];, {j, 1, n3}];) // RepeatedTiming // First

7.8

result2 == result2a == result2b

True