You can do the loop only where significant is true:
for i, j in zip(*np.where(significant)):
ax.plot(i, j, 'bo')
Or, if x and y are not arange-like:
for i, j in zip(*np.where(significant)):
ax.plot(x[i], y[j], 'bo')
np.where will return a tuple with two elements, the first and the second index of the nonzero elements.